package com.urbainski.componentes.validators
{
	import mx.validators.ValidationResult;
	import mx.validators.Validator;
	
	public class MyCEPValidator extends Validator
	{
		
		/**
		 *@author Cristian Elder Urbainski 
		 * @since 01/12/2011
		 */	
		
		private const CEP_LENGTH:int = 8;
		private var resultado:Array;
		
		public function MyCEPValidator()
		{
			super();
		}
		override protected function doValidation(value:Object):Array{
			var cep:String = String(value);
			resultado = [];
			
			resultado = super.doValidation(value);
			if (resultado.length > 0)
				return resultado;
			
			// Verifica se o cep  tem comprimento correto.
			if (cep.length != CEP_LENGTH && value){
				resultado.push(new  ValidationResult(true, null, "invalido", "O CEP é inválido, por que tá menor!"));
				return resultado;
			}
			
			// TODO: voce pode usar uma RegExp para validar /^[0-9]{5}-[0-9]{3}/
			/*Exemplo:
			if (!pattern.test(cep)){
			resultado.push(new ValidationResult(true, null, "NaN", "O CEP inválido."));
			return resultado; */
			
			if(!cep.substr(0,4) && cep.substr(5,7)){
				
				resultado.push(new ValidationResult(true, null, "NaN", "O CEP inválido."));
				return resultado;
			}
			
			return resultado;
			
		}
	}
}